1. Field of the Invention
The present invention relates to a controller that has an error correction function, used for memory and communication, to improve reliability of an apparatus/system by automatically correcting errors, and more particularly to a controller having an error correction function used in an industrial apparatus or a system which must operate correctly in a poor working environment caused by temperature, vibration, noise or the like, or an apparatus/system, for which reliability is demanded, as represented by medical, aerospace and public systems.
2. Description of the Related Art
There is an error correction method that automatically corrects an error using error correction codes, in order to improve reliability of data. Error correction codes have been researched in coding theory, and various configurations of correction codes having different functions have been proposed, such as correction codes especially for burst errors, and correction codes having locally intensified error correction capabilities. Normally one error correction code having sufficient correction capability is designed for an assumed error. In machines, particularly in machine tools, however, time-dependent errors are generated due to causes related to the installation environment and operating state, and correction capability becomes insufficient or resources are wasted if only one error code is used.
To solve this problem, a memory to switch between different error correction codes having different encoding efficiency values, based on an error rate determined from errors detected with each error correction code, has been proposed (e.g. see Japanese Patent Application Laid-Open No. 2012-155737).
With the error correction method according to the prior art, however, correction capability is switched based only on the error rate, hence it is impossible to switch to a correction capability that is appropriate for an error depending on the state of the machine. Further, the error rate is calculated based on the detection of uncorrectable errors, hence machine shutdown due to an uncorrectable error cannot be prevented.